@Luminary
2年前 提问
1个回答

链路层数据流量被挟持处置流程是什么

上官雨宝
2年前
官方采纳

链路层数据流量劫持处置方法如下:

  • HTTPS加密:https是目前应对链路劫持用的较多的解决方案。https是加密协议,我们随便抓个http包,发现http包里面的所有东西都是明文的,这样就会被监听,而https协议是加密的。但是光加密还不够,因为只是application data被加密了,网络层的信息都没有被加密,邪恶势力依然可以用数据包的目的ip作为源ip响应用户。https还有另一大特点是要验证数字证书,为了确保客户端访问的网站是经过CA验证的可信任的网站。所以这就几乎彻底杜绝了链路劫持的可能。但是https也不是如此完美,虽然https解决了诸多安全问题,但是对性能也有着比较大的影响。一是用户要从http跳转到https,并且要多几次 TLS的握手,这会消耗一定的时间;二是服务器的压力也会增加。除此之外如果使用全站的https,所有页面里面的嵌入资源都要改成https,APP的程序也要进行相应的修改,CDN的所有节点也必须都支持https并且导入证书。所以全站https并不是一件容易的事情,国外的Google、 Facebook、Twitter早已支持全站https,但目前国内大多数公司都没有采用全站https的方式。

  • 加强监控与检测:目前网上也有一些链路劫持检测方法,如使用libpcap判断链路层劫持,其原理是在链路层劫持的设备缺少仿造协议头中ttl值的程序(或者说,伪造流量要优先真实流量到达客户电脑,所以没有机会去伪造ttl值)。电脑每收到一个数据包,便交给程序,如果判断某一IP地址流量的ttl值与该IP前一次流量的ttl值不同且相差5以上,便判定此次流量为在链路层中伪造的。

  • 选择可靠的HTTPS证书:并非所有的HTTPS证书都能有效防御链路劫持,SSL证书是用于证明服务器身份的合法证书,因此SSL证书颁发机构的合法性直接决定了SSL证书的合法性。比如:采用开源工具自己签发的自签名SSL证书,就不是合法的SSL证书,任何人都可以随意签发,没有第三方监督审核,不受浏览器信任,常被黑客用于伪造证书进行中间人攻击。不仅无法保护链路安全,反倒给黑客开了方便之门。通SSL证书由全球信任顶级根签发,支持Windows、安卓、iOS、JDK以及Firefox、Chrome等各类浏览器、操作系统和移动终端,具备广泛兼容性,可用于网站、APP等各类服务器部署HTTPS加密,帮助互联网公司解决数据传输安全问题,防止流量劫持、数据泄露和钓鱼网站。